package io.byte_stream;

import java.io.*;
import java.util.Scanner;

/*
在控制台录入文件的路径，将文件拷贝到当前目录下
 */
public class Test_Copy {
    public static void main(String[] args) throws IOException {
        //获取文件
        File file = getFile();
        FileInputStream fis = new FileInputStream(file);
        FileOutputStream fos = new FileOutputStream("copy"+file.getName());

        int len;

        while((len = fis.read()) != -1) {
            fos.write(len);
        }

        //close
        fis.close();
        fos.close();


    }

    /*
    定义一个方法获取键盘录入的文件路径，并封装成File对象返回
    1.返回值：File
    2.参数列表：无
     */

    public static File getFile() {
        //创建键盘录入对象
        Scanner sc = new Scanner(System.in);

        while(true) {
            //接收键盘录入路径
            System.out.println("请输入一个文件的路径");
            String path = sc.nextLine();
            //封装成File对象并对其判断
            File file = new File(path);
            if(!file.exists()) {
                System.out.println("您录入的文件路径不存在，请重新录入");
            } else if (file.isDirectory()) {
                System.out.println("您录入的是文件夹路径，请重新录入");
            }else {
                //存在且不是文件夹，说明是文件
                return file;
            }
        }



    }
}
